/**
 * <p>文件名:		LogDataProcess.groovy</p>
 * <p>版权:		CopyrightTag</p>
 * <p>公司:		千方集团CTFO</p>
 * @author		周华彬(zhouhuabin@ctfo.com, zhou_hua_bin@163.com)
*/

package groovy

import com.palmcity.rtti.maintenancemonitor.api.MonitorLogData
import com.palmcity.rtti.maintenancemonitor.bean.MaintenanceMonitorException

/**
 * <p>LogDataProcess</p>
 * <p>用途：TODO</p>
 *
 * @author		周华彬(zhouhuabin@ctfo.com, zhou_hua_bin@163.com)
 * @version		0.0.1  2011-11-10
 * <table style="border:1px solid gray;">
 * <tr>
 * <th width="100px">版本号</th><th width="100px">动作</th><th width="100px">修改人</th><th width="100px">修改时间</th>
 * </tr>
 * <!-- 以 Table 方式书写修改历史 -->
 * <tr>
 * <td>0.0.0</td><td>创建类</td><td>zhb</td><td>2011-11-10 上午11:03:20</td>
 * </tr>
 * <tr>
 * <td>0.0.1</td><td>创建类</td><td>zhb</td><td>2011-11-10 上午11:03:20</td>
 * <td>0.0.2</td><td>修改类</td><td>xxx</td><td>x年x月x日</td>
 * </tr>
 * </table>
 */
class LogDataProcess extends MonitorLogData {
   
	   /** TODO */
	   private static final long serialVersionUID = 1L;
   
	   /** 很多字段在这里定义 */
	   /** 数据源数量  */
	   def	sourceAmount;
		   
	   /** 数据源列表 */
	   private List<LogDataProcess_SourceElement> sourceElement = new ArrayList<LogDataProcess_SourceElement>();
	   
	   /** Gps内存池 */
	   def gpsMemPool;
	   /** 车辆内存池 */
	   def carMemPool=0;
	   /** 路径节点内存池 */
	   def pathNodeMemPool=0;
	   /** 车辆速度内存池 */
	   def carSpeedMemPool=0;
	   /** 输出总路段数 */
	   def outputAmount=0;
	   /** 畅通路段数 */
	   def smoothAmount=0;
	   /** 缓慢路段数 */
	   def slowAmount=0;
	   /** 拥堵路段数 */
	   def jamAmount=0;
	   /** 第一条GPS数据 */
	   def firstGpsInfo=0;
	   /** 开始计算时间 */
	   def startTime=0;
	   /** 计算耗时单位毫秒 */
	   def elapseTime=0;
	   /** 总车辆数 */
	   def vehicleAmount=0;
	   /** 是否调试状态 */
	   def debug = false;
	   
	   
	   /** 数据处理报警条件设置 */
	   public boolean checkConditionAlarm() throws MaintenanceMonitorException {
		   boolean conditionAlarm = false;
		   if(debug){
			   return 1<0;
		   }else{
			   for(def source:sourceElement){
				   conditionAlarm = source.checkConditionAlarm();
				   if(conditionAlarm){
					   setText(getText()+" 数据源 " + source.getPath() + "产生报警");
				   }
			   }
//			   return false;
			   return conditionAlarm||(ALARM_CONDITION);
		   }
	   }
	   
	   /**
		* 获取变量<code>sourceList</code>的值
		* @return 返回的数据类型是<code>List<groovy.LogDataProcess_SourceElement></code>
		*/
	   public List<groovy.LogDataProcess_SourceElement> getSourceElement() {
		   return sourceElement;
	   }
   
	   /**
		* 设置变量<code> sourceList</code> 的值
		* @param sourceList  <code>sourceList</code> 参数类型是<code>List<groovy.LogDataProcess_SourceElement></code>
		*/
	   public void setSourceElement(List<groovy.LogDataProcess_SourceElement> sourceElement) {
		   this.sourceElement = sourceElement;
	   }
		public static main(String[] args){
			
		}
   
   
}
